MaskableGraphic GC 优化

最近想把 UGUI 整个从 Unity 中剔除,然后 修改 UGUI 源码

在对比 20182020 版本中 MaskableGraphic.cs 时,发现两个版本源码并不一致

2018 版本

Pasted image 20210729170245.png

注意红框标记的部分,我们每次打开继承 MaskableGraphic.cs 的组件时,都会产生数量非常可观的 GC

2020 版本

Pasted image 20210729170323.png

2020 版本的源码中,Unity 移除了这个沙雕代码,哈哈哈哈哈

我们接着往下看,看看这次 Unity 是怎么实现的,如果还有奇怪的代码就给他改掉

2018 版本中判断当前组件是否为 Mask 的逻辑被移到了 Mask.cs 文件中,这次 Unity 学聪明了,直接使用 is 这样就会产生奇怪的 GC

Pasted image 20210729171131.png